﻿using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class PracticantesService: BaseService, IPracticantesService
    {
        private IPracticantesDao _PracticantesDao;
        private IEstudiantesDao _EstudiantesDao;

        public IEstudiantesDao EstudiantesDao
        {
            get { return _EstudiantesDao; }
            set { _EstudiantesDao = value; }
        }

        public IPracticantesDao PracticantesDao
        {
            get { return _PracticantesDao; }
            set { _PracticantesDao = value; }
        }

        public IList<Practicantes> GetAll()
        {
            return PracticantesDao.GetAll();
        }

        public Practicantes GetById(int IdPracticante)
        {
            return DeepLoad(PracticantesDao.GetById(IdPracticante));
        }

        private Practicantes DeepLoad(Practicantes Practicante)
        {
            Practicante.Estudiante = EstudiantesDao.GetByCodigoEstudiante(Practicante.CodigoEstudiante);
            return Practicante;
        }

        public Practicantes GetByEstudiante(int CodigoEstudiante)
        {
            return DeepLoad(PracticantesDao.GetByEstudiante(CodigoEstudiante));
        }

        public void Insert(Practicantes Practicante)
        {
            PracticantesDao.Save(Practicante);
        }

        public void Update(Practicantes Practicante)
        {
            PracticantesDao.Update(Practicante);
        }
    }
}
